#ifndef __CHESSMAN_H__
#define __CHESSMAN_H__

#include <QString>

typedef enum{
    CAMP_RED, // 红方
    CAMP_BLACK // 黑方
}ChessCamp_e;

typedef enum{
    TYPE_JIANG, // 将
    TYPE_SHI,   // 士
    TYPE_XIANG, // 相
    TYPE_MA,    // 马
    TYPE_CHE,   // 车
    TYPE_PAO,   // 炮
    TYPE_BING   // 兵
}ChessType_e;

class ChessMan
{
private:
    /* data */
public:
    int _id; // 棋子ID
    int _row; // 棋子坐标
    int _col; 
    ChessCamp_e _camp; // 棋子阵营
    ChessType_e _type; // 棋子类型
    bool _isDead; // 是否死亡 0 否 1 是
    bool _isClicked; // 是否选中
public:
    ChessMan();
    ~ChessMan();

    void init(void)
    {
        _id = 0;
        _row = 0;
        _col = 0; 
        _isDead = true; // 默认死亡
        _isClicked = false; // 默认没选中
    }

    QString getName(void)
    {
        // 红方
        if(this->_camp == CAMP_RED)
        {
            switch (this->_type)
            {
                case TYPE_JIANG:
                    /* code */
                    return "帥";
                case TYPE_SHI:
                    return "仕";
                case TYPE_XIANG:
                    return "相";
                case TYPE_MA:
                    return "傌";
                case TYPE_CHE:
                    return "俥";
                case TYPE_PAO:
                    return "炮";
                case TYPE_BING:
                    return "兵";
                default:
                    return "";
            }
        }
        // 黑方
        else if(this->_camp == CAMP_BLACK)
        {
            switch (this->_type)
            {
                case TYPE_JIANG:
                    /* code */
                    return "将";
                case TYPE_SHI:
                    return "士";
                case TYPE_XIANG:
                    return "象";
                case TYPE_MA:
                    return "馬";
                case TYPE_CHE:
                    return "車";
                case TYPE_PAO:
                    return "砲";
                case TYPE_BING:
                    return "卒";
                default:
                    return "";
            }
        }
    }
};







#endif

